<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- 
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

 http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License. 
-->
<html>
<head>
    <link type="text/css" rel="stylesheet" href="https://struts.apache.org/css/default.css">
    <style type="text/css">
        .dp-highlighter {
            width:95% !important;
        }
    </style>
    <style type="text/css">
        .footer {
            background-image:      url('https://cwiki.apache.org/confluence/images/border/border_bottom.gif');
            background-repeat:     repeat-x;
            background-position:   left top;
            padding-top:           4px;
            color:                 #666;
        }
    </style>
    <link href='https://struts.apache.org/highlighter/style/shCoreStruts.css' rel='stylesheet' type='text/css' />
    <link href='https://struts.apache.org/highlighter/style/shThemeStruts.css' rel='stylesheet' type='text/css' />
    <script src='https://struts.apache.org/highlighter/js/shCore.js' type='text/javascript'></script>
    <script src='https://struts.apache.org/highlighter/js/shBrushPlain.js' type='text/javascript'></script>
    <script src='https://struts.apache.org/highlighter/js/shBrushXml.js' type='text/javascript'></script>
    <script src='https://struts.apache.org/highlighter/js/shBrushJava.js' type='text/javascript'></script>
    <script src='https://struts.apache.org/highlighter/js/shBrushJScript.js' type='text/javascript'></script>
    <script src='https://struts.apache.org/highlighter/js/shBrushGroovy.js' type='text/javascript'></script>
    <script src='https://struts.apache.org/highlighter/js/shBrushBash.js' type='text/javascript'></script>
    <script type="text/javascript">
        SyntaxHighlighter.defaults['toolbar'] = false;
        SyntaxHighlighter.all();
    </script>
    <script type="text/javascript" language="javascript">
        var hide = null;
        var show = null;
        var children = null;

        function init() {
            /* Search form initialization */
            var form = document.forms['search'];
            if (form != null) {
                form.elements['domains'].value = location.hostname;
                form.elements['sitesearch'].value = location.hostname;
            }

            /* Children initialization */
            hide = document.getElementById('hide');
            show = document.getElementById('show');
            children = document.all != null ?
                    document.all['children'] :
                    document.getElementById('children');
            if (children != null) {
                children.style.display = 'none';
                show.style.display = 'inline';
                hide.style.display = 'none';
            }
        }

        function showChildren() {
            children.style.display = 'block';
            show.style.display = 'none';
            hide.style.display = 'inline';
        }

        function hideChildren() {
            children.style.display = 'none';
            show.style.display = 'inline';
            hide.style.display = 'none';
        }
    </script>
    <title>Struts Maven Archetypes</title>
</head>
<body onload="init()">
<table border="0" cellpadding="2" cellspacing="0" width="100%">
    <tr class="topBar">
        <td align="left" valign="middle" class="topBarDiv" align="left" nowrap>
            &nbsp;<a href="home.html">Home</a>&nbsp;&gt;&nbsp;<a href="guides.html">Guides</a>&nbsp;&gt;&nbsp;<a href="core-developers-guide.html">Core Developers Guide</a>&nbsp;&gt;&nbsp;<a href="struts-maven-archetypes.html">Struts Maven Archetypes</a>
        </td>
        <td align="right" valign="middle" nowrap>
            <form name="search" action="https://www.google.com/search" method="get">
                <input type="hidden" name="ie" value="UTF-8" />
                <input type="hidden" name="oe" value="UTF-8" />
                <input type="hidden" name="domains" value="" />
                <input type="hidden" name="sitesearch" value="" />
                <input type="text" name="q" maxlength="255" value="" />
                <input type="submit" name="btnG" value="Google Search" />
            </form>
        </td>
    </tr>
</table>

<div id="PageContent">
    <div class="pageheader" style="padding: 6px 0px 0px 0px;">
        <!-- We'll enable this once we figure out how to access (and save) the logo resource -->
        <!--img src="/wiki/images/confluence_logo.gif" style="float: left; margin: 4px 4px 4px 10px;" border="0"-->
        <div style="margin: 0px 10px 0px 10px" class="smalltext">Apache Struts 2 Documentation</div>
        <div style="margin: 0px 10px 8px 10px"  class="pagetitle">Struts Maven Archetypes</div>

        <div class="greynavbar" align="right" style="padding: 2px 10px; margin: 0px;">
            <a href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=13990">
                <img src="https://cwiki.apache.org/confluence/images/icons/notep_16.gif"
                     height="16" width="16" border="0" align="absmiddle" title="Edit Page"></a>
            <a href="https://cwiki.apache.org/confluence/pages/editpage.action?pageId=13990">Edit Page</a>
            &nbsp;
            <a href="https://cwiki.apache.org/confluence/pages/listpages.action?key=WW">
                <img src="https://cwiki.apache.org/confluence/images/icons/browse_space.gif"
                     height="16" width="16" border="0" align="absmiddle" title="Browse Space"></a>
            <a href="https://cwiki.apache.org/confluence/pages/listpages.action?key=WW">Browse Space</a>
            &nbsp;
            <a href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&fromPageId=13990">
                <img src="https://cwiki.apache.org/confluence/images/icons/add_page_16.gif"
                     height="16" width="16" border="0" align="absmiddle" title="Add Page"></a>
            <a href="https://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=WW&fromPageId=13990">Add Page</a>
            &nbsp;
            <a href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=13990">
                <img src="https://cwiki.apache.org/confluence/images/icons/add_blogentry_16.gif"
                     height="16" width="16" border="0" align="absmiddle" title="Add News"></a>
            <a href="https://cwiki.apache.org/confluence/pages/createblogpost.action?spaceKey=WW&fromPageId=13990">Add News</a>
        </div>
    </div>

    <div class="pagecontent">
        <div class="wiki-content">
            <div id="ConfluenceContent"><div class="confluence-information-macro confluence-information-macro-warning"><span class="aui-icon aui-icon-small aui-iconfont-error confluence-information-macro-icon"></span><div class="confluence-information-macro-body">
<p>This page is deprecated and replaced by the <a shape="rect" href="struts-2-maven-archetypes.html">Struts 2 Maven Archetypes</a> page.</p>

<p>It is being kept (for now) for release note links.</p></div></div>

<hr>

<p>Struts provides several Maven Archetypes that create working applications based on a template. </p>

<h2 id="StrutsMavenArchetypes-AvailableArchetypes">Available Archetypes</h2>

<p>The following archetypes are available:</p>

<h3 id="StrutsMavenArchetypes-TheStarterArchetype(struts2-archetype-starter)">The Starter Archetype (struts2-archetype-starter)</h3>

<p>The Starter archetype creates a more featured application using several common technologies used in production applications.</p>

<h4 id="StrutsMavenArchetypes-Features">Features</h4>
<ul><li>Sitemesh integration</li><li>Action example (both instantiated through Spring and Struts itself)</li><li>Validation example (action and action-alias level)</li><li>Conversion example (global and action level)</li><li>Resource bundle (both global, action and package level)</li></ul>


<h3 id="StrutsMavenArchetypes-ThePortletBlankArchetype(struts2-archetype-portlet)">The Portlet Blank Archetype (struts2-archetype-portlet)</h3>

<p>The Portlet blank archetype creates a minimally populated JSR 168 portlet.</p>

<h4 id="StrutsMavenArchetypes-Features.1">Features</h4>
<ul><li>View, Edit, and Help mode examples</li><li>Simple form for preferences in Edit mode</li><li>Can be deployed as a servlet or portlet application</li><li>Can use Maven Jetty plugin to deploy as a servlet webapp</li></ul>


<h3 id="StrutsMavenArchetypes-ThePortletDatabaseArchetype(struts2-archetype-dbportlet)">The Portlet Database Archetype (struts2-archetype-dbportlet)</h3>

<p>The Portlet database archetype creates a simple JSR 168 portlet that displays the contents of a database table.</p>

<h4 id="StrutsMavenArchetypes-Features.2">Features</h4>
<ul><li>Uses Spring and Hsql to show a real database query</li><li>Builtin caching of query results</li><li>View, Edit, and Help mode examples</li><li>Simple form for preferences in Edit mode</li><li>Can be deployed as a servlet or portlet application</li><li>Can use Maven Jetty plugin to deploy as a servlet webapp</li></ul>


<h2 id="StrutsMavenArchetypes-CreatinganApplicationUsinganArchetype">Creating an Application Using an Archetype</h2>

<p>From a working directory for your project, run the following command: </p>

<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
mvn archetype:create   -DgroupId=tutorial \
                       -DartifactId=tutorial \
                       -DarchetypeGroupId=org.apache.struts \
                       -DarchetypeArtifactId=struts2-archetype-starter \
                       -DarchetypeVersion=2.0.11.2 

</pre>
</div></div>

<p>This table describes the parameters used above:</p>

<div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p> Name </p></th><th colspan="1" rowspan="1" class="confluenceTh"><p> Description </p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>groupId</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The id for the group the application belongs to.  Usually is the root package for applications in your company, e.g. com.mycompany </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>artifactId</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The id for the project </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>package</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The base Java package to use for generated source code.  Defaults to <code>archetypeGroupId</code> if not specified. </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>archetypeGroupId</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The group id of the archetype.  Will always be <code>org.apache.struts</code> for Struts archetypes </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>archetypeArtifactId</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The id of the archetype </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>archetypeVersion</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> The version of the archetype </p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p> <code>remoteRepositories</code> </p></td><td colspan="1" rowspan="1" class="confluenceTd"><p> A list of remote repositories that contain the archetype.  If deployed to the standard Maven repository or locally, this is optional </p></td></tr></tbody></table></div>


<p>The Archetype will create a ready-run Struts project. Just run "mvn install" to build. </p>

<h2 id="StrutsMavenArchetypes-CommandQuickReference">Command Quick Reference</h2>

<ul><li>To build
<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
   mvn install
</pre>
</div></div></li></ul>


<ul><li>To create IntelliJ IDEA project files
<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
   mvn idea:idea
</pre>
</div></div></li></ul>


<ul><li>To create Eclipse project files
<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
   mvn eclipse:eclipse
</pre>
</div></div></li></ul>


<ul><li>To run test cases
<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
   mvn test
</pre>
</div></div></li></ul>


<ul><li>To clean up
<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
   mvn clean
</pre>
</div></div></li></ul>


<ul><li>To package
<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
   mvn package
</pre>
</div></div></li></ul>


<ul><li>To grab necessary JAR files etc.
<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
   mvn initialize
</pre>
</div></div></li></ul>


<ul><li>To run it with Jetty
<div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
<pre class="brush: java; gutter: false; theme: Default" style="font-size:12px;">
   mvn jetty:run
</pre>
</div></div></li></ul>


</div>
        </div>

        
    </div>
</div>
<div class="footer">
    Generated by CXF SiteExporter
</div>
</body>
</html>
